1. Technical Field
The present invention relates to improved information-retrieval methods and systems. In particular, the present invention relates to improved information-retrieval methods and systems which utilize so-called "applets, " or small pieces of code that can be transported over computer networks. More particularly, the present invention relates to an improved method and system in a computer network for permitting applets to communicate within one another.
2. Description of the Related Art
The development of computerized information resources, such as remote networks, allows users of data-processing systems to link with other servers and networks, and thus retrieve vast amounts of electronic information heretofore unavailable in an electronic medium. Such electronic information is increasingly displacing more conventional means of information transmission, such as newspapers, magazines, and even television.
In communications, a set of computer networks which are possibly dissimilar from one another are joined together by "gateways" that handle data transfer and the conversion of messages from the sending network to the protocols used by the receiving network, with packets if necessary. A gateway is a device used to connect dissimilar networks (i.e., networks utilizing different communication protocols) so that electronic information can be passed from one network to the other. Gateways transfer electronic information, converting such information to a form compatible with the protocols used by the second network for transport and delivery.
One type of remote network commonly utilized in recent years is the Internet. The term "Internet" is an abbreviation for "Internetwork," and refers commonly to the collection of networks and gateways that utilize the TCP/IP suite of protocols, which are well-known in the art of computer networking. TCP/IP is an acronym for "Transport Control Protocol/Interface Program," a software protocol developed by the Department of Defense for communication between computers. The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers executing networking protocols that allow users to interact and share information over the networks. Because of such wide-spread information sharing, remote networks such as the Internet have thus far generally evolved into an "open" system for which developers can design software applications for performing specialized operations or services, essentially without restriction.
Electronic information transferred between data-processing networks is usually presented in hypertext, a metaphor for presenting information in a manner in which text, images, sounds, and actions become linked together in a complex non-sequential web of associations that permit the user to "browse" or "navigate" through related topics, regardless of the presented order of the topics. These links are often established by both the author of a hypertext document and by the user, depending on the intent of the hypertext document. For example, traveling among links to the word "iron" in an article displayed within a Graphical User Interface in a data-processing system might lead the user to the periodic table of the chemical elements (i.e., linked by the word "iron"), or to a reference to the use of iron in weapons in Europe in the Dark Ages. The term "hypertext" was coined in the 1960s to describe documents, as presented by a computer, that express the nonlinear structure of ideas, as opposed to the linear format of books, film, and speech.
The term "hypermedia," on the other hand, more recently introduced, is nearly synonymous with "hypertext" but focuses on the nontextual components of hypertext, such as animation, recorded sound, and video. Hypermedia is the integration of graphics, sound, video, or any combination thereof into a primarily associative system of information storage and retrieval. Hypermedia, as well as hypertext, especially in an interactive format where choices are controlled by the user, is structured around the idea of offering a working and learning environment that parallels human thinking--that is, an environment that allows the user to make associations between topics rather than move sequentially from one to the next, as in an alphabetic list. Hypermedia, as well as hypertext topics, are thus linked in a manner that allows the user to jump from one subject to other related subjects during a search for information. Hyper-link information is contained within hypermedia and hypertext documents, which allow a user to move back to "original" or referring network sites by the mere "click" (i.e., with a mouse or other pointing device) of the hyper-linked topic.
A typical networked system that utilizes hypertext and hypermedia conventions follows a client/server architecture. The "client" is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process (i.e., roughly a program or task) that requests a service provided by another program. The client process utilizes the requested service without having to "know" any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer (i.e., a server).
A request by a user for news can be sent by a client application program to a server. A server is typically a remote computer system accessible over a remote network such as the Internet. The server scans and searches for raw (e.g., unprocessed) information sources (e.g., newswire feeds or newsgroups). Based upon such requests by the user, the server presents filtered electronic information as server responses to the client process. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.
Client and server communicate with one another utilizing the functionality provided by Hypertext-Transfer Protocol (HTTP). The World Wide Web (WWW) or, simply, the "web," includes those servers adhering to this standard (i.e., HTTP) which are accessible to clients via a computer or data-processing system network address such as a Universal Resource Locator (URL). The network address can be referred to as a Universal Resource Locator address. For example, communication can be provided over a communications medium. In particular, the client and server may be coupled to one another via Serial Line Internet Protocol (SLIP) or TCP/IP connections for high-capacity communication. Active within the client is a first process, known as a "browser," which establishes the connection with the server and presents information to the user. The server itself executes corresponding server software which presents information to the client in the form of HTTP responses. The HTTP responses correspond to "web pages" constructed from a Hypertext Markup Language (HTML), or other server-generated data. Each web page can also be referred to simply as a "page."
Key to the development of such web pages has been the use of object-oriented programming languages. Object oriented-programming is a method for structuring programs as hierarchically organized classes describing the data and operations of objects that interact with other objects. One such object-oriented programming language that is currently utilized in the programming arts a great deal is "Java," developed by Sun Microsystems, Inc. Java.TM. is also a trademark of Sun Microsystems, Inc. ("Sun"). Java.TM. is similar to the C++ programming language well known in the programming arts. Java.TM., however, is a smaller and more portable programming language than that of the C++ programming language. Programmers typically find Java.TM. easier to use than the C++ programming language because Java.TM. can manage memory on its own. Because programs written in Java.TM. are typically compiled into byte-codes, which are similar to machine code and not dedicated to any specific platform, Java.TM. can run on any platform, which makes the Java.TM. programming language useful for programming World Wide Web applications.
Java.TM., and other similar Internet programming languages, typically utilize applets to transfer data. Applets are essentially small pieces of code that can be transported over the Internet and executed on the recipient's machine. The term is especially used to refer to programs as they are embedded in line as objects in HTML documents on the World Wide Web. Presently, applets do not communicate with one another, except via inter-applet communication models such as the so-called "InfoBus" (referred to herein simply as "InfoBus" and described in greater detail herein) which allows applets to communicate with one another, but only on a single machine (e.g., a client) as explained herein. It would be desirable to allow applets to communicate with one another throughout an entire computer network, such as the Internet. By permitting applets to communicate with one another over an entire computer network, vast amounts of data can be more efficiently transferred and processed, thus decreasing download time and promoting increased "user-friendly" Internet software. Based on the foregoing, it can be appreciated that a need exists for a method and system which would promote distributed inter-applet communication over a computer network.